home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / asm / pci.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  3KB  |  111 lines

  1. #ifndef __i386_PCI_H
  2. #define __i386_PCI_H
  3.  
  4. #include <linux/config.h>
  5.  
  6. #ifdef __KERNEL__
  7. #include <linux/mm.h>        /* for struct page */
  8.  
  9. /* Can be used to override the logic in pci_scan_bus for skipping
  10.    already-configured bus numbers - to be used for buggy BIOSes
  11.    or architectures with incomplete PCI setup by the loader */
  12.  
  13. #ifdef CONFIG_PCI
  14. extern unsigned int pcibios_assign_all_busses(void);
  15. #else
  16. #define pcibios_assign_all_busses()    0
  17. #endif
  18. #define pcibios_scan_all_fns(a, b)    0
  19.  
  20. extern unsigned long pci_mem_start;
  21. #define PCIBIOS_MIN_IO        0x1000
  22. #define PCIBIOS_MIN_MEM        (pci_mem_start)
  23.  
  24. #define PCIBIOS_MIN_CARDBUS_IO    0x4000
  25.  
  26. void pcibios_config_init(void);
  27. struct pci_bus * pcibios_scan_root(int bus);
  28.  
  29. void pcibios_set_master(struct pci_dev *dev);
  30. void pcibios_penalize_isa_irq(int irq);
  31. struct irq_routing_table *pcibios_get_irq_routing_table(void);
  32. int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq);
  33.  
  34. /* Dynamic DMA mapping stuff.
  35.  * i386 has everything mapped statically.
  36.  */
  37.  
  38. #include <linux/types.h>
  39. #include <linux/slab.h>
  40. #include <asm/scatterlist.h>
  41. #include <linux/string.h>
  42. #include <asm/io.h>
  43.  
  44. struct pci_dev;
  45.  
  46. /* The PCI address space does equal the physical memory
  47.  * address space.  The networking and block device layers use
  48.  * this boolean for bounce buffer decisions.
  49.  */
  50. #define PCI_DMA_BUS_IS_PHYS    (1)
  51.  
  52. /* pci_unmap_{page,single} is a nop so... */
  53. #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME)
  54. #define DECLARE_PCI_UNMAP_LEN(LEN_NAME)
  55. #define pci_unmap_addr(PTR, ADDR_NAME)        (0)
  56. #define pci_unmap_addr_set(PTR, ADDR_NAME, VAL)    do { } while (0)
  57. #define pci_unmap_len(PTR, LEN_NAME)        (0)
  58. #define pci_unmap_len_set(PTR, LEN_NAME, VAL)    do { } while (0)
  59.  
  60. /* This is always fine. */
  61. #define pci_dac_dma_supported(pci_dev, mask)    (1)
  62.  
  63. static inline dma64_addr_t
  64. pci_dac_page_to_dma(struct pci_dev *pdev, struct page *page, unsigned long offset, int direction)
  65. {
  66.     return ((dma64_addr_t) page_to_phys(page) +
  67.         (dma64_addr_t) offset);
  68. }
  69.  
  70. static inline struct page *
  71. pci_dac_dma_to_page(struct pci_dev *pdev, dma64_addr_t dma_addr)
  72. {
  73.     return pfn_to_page(dma_addr >> PAGE_SHIFT);
  74. }
  75.  
  76. static inline unsigned long
  77. pci_dac_dma_to_offset(struct pci_dev *pdev, dma64_addr_t dma_addr)
  78. {
  79.     return (dma_addr & ~PAGE_MASK);
  80. }
  81.  
  82. static inline void
  83. pci_dac_dma_sync_single_for_cpu(struct pci_dev *pdev, dma64_addr_t dma_addr, size_t len, int direction)
  84. {
  85. }
  86.  
  87. static inline void
  88. pci_dac_dma_sync_single_for_device(struct pci_dev *pdev, dma64_addr_t dma_addr, size_t len, int direction)
  89. {
  90.     flush_write_buffers();
  91. }
  92.  
  93. #define HAVE_PCI_MMAP
  94. extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
  95.                    enum pci_mmap_state mmap_state, int write_combine);
  96.  
  97.  
  98. static inline void pcibios_add_platform_entries(struct pci_dev *dev)
  99. {
  100. }
  101.  
  102. #endif /* __KERNEL__ */
  103.  
  104. /* implement the pci_ DMA API in terms of the generic device dma_ one */
  105. #include <asm-generic/pci-dma-compat.h>
  106.  
  107. /* generic pci stuff */
  108. #include <asm-generic/pci.h>
  109.  
  110. #endif /* __i386_PCI_H */
  111.